package com.scholarship.modules.backend.service;

import com.scholarship.common.entity.RetCode;
import com.scholarship.common.entity.RetResponse;
import com.scholarship.common.entity.RetResult;
import com.scholarship.modules.backend.entity.RewardType;
import com.scholarship.modules.backend.mapper.RewardTypeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author zhz
 * @date 2021/4/24 19:36
 * 备注：针对奖学金类型表的一系列数据库操作
 */
@Service
public class RewardTypeService {

    @Autowired
    RewardTypeMapper rewardTypeMapper;

    /**
     * 功能：实现列出所有的奖学金类型
     * @return 链表:奖学金类型对象（id,type_name,percent,top_score）
     */
    public List<RewardType> listRewardType(){
        return rewardTypeMapper.listRewardType();
    }

    /**
     * 功能：添加新的奖学金类型
     * @param rewardType 奖学金类型
     * @return 返回整数表示修改的行数
     */
    public Integer addRewardType(RewardType rewardType){
        return rewardTypeMapper.addRewardType(rewardType);
    }

    /**
     * 功能：修改某个奖学金类型的属性
     * @param rewardType 奖学金类型
     * @return -1 : id不存在
     *         else : 返回整数表示修改的行数
     */
    public Integer updateRewardType(RewardType rewardType){
        RewardType before = rewardTypeMapper.getRewardType(rewardType.getId());
        if(before==null){
            return -1;
        }
//        System.out.println("原数据："+before.toString());
        Integer updateLine =  rewardTypeMapper.updateRewardType(rewardType);
//        System.out.println("修改为："+rewardTypeMapper.getRewardType(rewardType.getId()).toString());
        return updateLine;
    }
    /**
     * 功能：删除某个奖学金类型的属性
     * @param rewardType 奖学金类型
     * @return -1 : id不存在
     *          else : 返回整数表示修改的行数
     */
    public Integer deleteRewardType(RewardType rewardType){
        Integer id = rewardType.getId();
        RewardType before =rewardTypeMapper.getRewardType(id);
        if(before==null){
            return -1;
        }
//        System.out.println("删除原数据："+before.toString());
        Integer deleteLine =  rewardTypeMapper.deleteRewardType(id);
        return deleteLine;
    }
}
